import Vue from 'vue'
import VueRouter from 'vue-router'
import nav from '../navData/index'
import { getData } from '../api/navData.js'

Vue.use(VueRouter)

// 获取原型对象上的push函数
const originalPush = VueRouter.prototype.push
// 修改原型对象中的push方法
VueRouter.prototype.push = function push(location) {
  return originalPush.call(this, location).catch(err => err)
}

const routes = [
  {
    path: '/',
    meta: { title: "首页" },
    component: () => import('../views/index.vue'),
    children: [

    ]
  }
]

// 动态生成数据
nav.forEach(item => {
  routes[0].children.push({
    path: item.path,
    meta: item.meta,
    component: item.component,
    children: item.children
  })
})

const router = new VueRouter({
  routes
})

// // 路由拦截
// router.beforeEach(async (to, from, next) => {
//   let res = await getData()
//   // 处理路由数据
//   let routeData = add(res)
//   console.log(routeData);
//   // 添加路由数据
//   router.addRoute(routeData)
//   next({ path: to.path })
// })

// // 路由数据拼接
// function add(res) {
//   res.forEach(item => {
//     routes[0].children.push({
//       path: item.path,
//       meta: item.meta,
//       component: item.component,
//       children: item.children
//     })
//   })
//   return routes
// }


export default router
